package lv.clientedisqueria.model.estilo;

import java.util.ArrayList;
import java.util.List;

import lv.clientedisqueria.model.DisqueriaTablaModelo;
import lv.clientedisqueria.model.Modelo;
import lv.mensajeriadisqueria.dto.EstiloDto;
import lv.mensajeriadisqueria.idomain.IEstilo;

/**
 *	Modelo de usuario
 */
public class EstiloModel extends Modelo<IEstilo> {

	private final static String PROPERTY_CHANGE_CAMBIAR_ESTILO = "cambiarEstilo";
	
	private final EstiloTablaModel estiloTablaModel;
	
	public EstiloModel() {
		estiloTablaModel = new EstiloTablaModel(this);
	}

	@Override
	public String getPropertyChangeCambio() {
		return PROPERTY_CHANGE_CAMBIAR_ESTILO;
	}
	
	@Override
	public List<IEstilo> buscarTodos() {
		// TODO aca hay que buscar a la base a todos los usuario
		List<IEstilo> estilo = new ArrayList<IEstilo>();
		    EstiloDto estiloDto = new EstiloDto("Pop");
		    estiloDto.setIdEstilo(1);
		 	estilo.add(estiloDto);
		 	EstiloDto estiloDto2 = new EstiloDto("Rock");
		 	estiloDto2.setIdEstilo(2);
			estilo.add(estiloDto2);
			EstiloDto estiloDto3 = new EstiloDto("Jazz");
			estiloDto3.setIdEstilo(3);
			estilo.add(estiloDto3);
			EstiloDto estiloDto4 = new EstiloDto("Tango" );
			estiloDto4.setIdEstilo(4);
			estilo.add(estiloDto4);
		return estilo;
	}

	public void borrar() {
		// TODO aca hay que llamar al clienteserver para que haga el pedido
		estiloTablaModel.remover();
		notificar(Modelo.BORRAR);
	}

	public void insertar() {
		estiloTablaModel.adherirOModificar(new EstiloDto());
		notificar(Modelo.INSERTAR);
	}
	public void guardar(IEstilo estilo) {
		// TODO Aca hay que llamar al server para guardar el objeto.
		estiloTablaModel.adherirOModificar(estilo);
		notificar(Modelo.GUARDADO);
	}

	@Override
	public DisqueriaTablaModelo<IEstilo> getTablaModel() {
		return estiloTablaModel;
	}
}